package main;

import java.util.List;
import java.util.Vector;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.table.DefaultTableModel;

public class AppTable {
	JTable tablaDescuentos;

	public AppTable(Vector<AppApk> out) {
		JFrame frame = new JFrame();
		frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

		cargarDescuentos(out);

		frame.getContentPane().add(new JScrollPane(tablaDescuentos));
		frame.pack();
		frame.setVisible(true);
	}

	public void cargarDescuentos(Vector<AppApk> out) {
		DefaultTableModel mdl = new DefaultTableModel() {
			@Override
			// al poner que devuelva un boolean lo que hace es poner un check
			// automatico el jtable, tu deberias seguir con un || columnIndex ==
			// 4.... en el if
			public Class getColumnClass(int columnIndex) {
				if ((columnIndex == 4) || (columnIndex == 0)) {
					return Boolean.class;
				} else {
					return super.getColumnClass(columnIndex);
				}
			}

			@Override
			public boolean isCellEditable(int row, int column) {
				// all cells false
				if (column == 0) {
					return true;
				}
				return false;
			}
		};
		Object[] columnas = new Object[5];
		Object[] valores = new Object[5];

		columnas[0] = "Selected";
		columnas[1] = "Package";
		columnas[2] = "Apk";
		columnas[3] = "Path";
		columnas[4] = "System App?";
		mdl.setColumnIdentifiers(columnas);
		tablaDescuentos = new JTable();
		tablaDescuentos.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
		tablaDescuentos.setModel(mdl);

		for (int i = 0; i < out.size(); i++) {
			valores[1] = out.get(i).getPackageName();
			valores[2] = out.get(i).getName();
			valores[3] = out.get(i).getPathApk();
			valores[4] = out.get(i).isSystenApp();
			mdl.addRow(valores);
		}
	}
}
